/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.dao;

import br.com.deployment.daogenerico.DaoGenerico;
import br.com.deployment.entidade.empresa.Fornecedor;
import br.com.deployment.entidade.selo.EntradaSelo;
import br.com.deployment.interfaces.EntradaSeloDaoIn;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author luciano
 */
@Stateless
@LocalBean
public class EntradaSeloDao extends DaoGenerico<EntradaSelo> implements EntradaSeloDaoIn{

    public EntradaSeloDao() {
        super(EntradaSelo.class);
    }

    public EntradaSelo findNome(String nome) {
        throw new UnsupportedOperationException("Not supported yet.");
    }


    public List<EntradaSelo> findEntradaSelo(EntradaSelo entradaSelo, Fornecedor fornecedor) {
        List<EntradaSelo> result;

        String sql = "select es from EntradaSelo es JOIN es.fornecedor f where ";
        if (entradaSelo.getNumeroNota() != 0) {
            sql += " es.numeroNota = :numero and";
        }
        if (fornecedor != null && fornecedor.getId() != 0) {
            sql += "  f.id=:id and";
        }
        if (entradaSelo.getDataNote() != null) {
            sql += "  es.dataNote =:datanote and";
        }
        sql += " 1=1";

        Query q = getEm().createQuery(sql);
        if (entradaSelo.getNumeroNota() != 0) {
            q.setParameter("numero", entradaSelo.getNumeroNota());
        }
        if  (fornecedor != null && fornecedor.getId() != 0)  {
            q.setParameter("id", fornecedor.getId());

        }
        if (entradaSelo.getDataNote() != null) {
            q.setParameter("datanote", entradaSelo.getDataNote());
        }
        System.out.println(sql);
        result = q.getResultList();
        return result;
    }
    
}
